﻿using Microsoft.Practices.Prism.Commands;
using Present.Commands.Async.Actions;

namespace Present.Commands.Fluent
{
    public static class Command
    {
        public static AsyncCommandBuilder Async(IAsyncAction asyncAction)
        {
            return new AsyncCommandBuilder(asyncAction);
        }

        public static DelegateCommandBuilder<T> FromDelegates<T>()
        {
            return new DelegateCommandBuilder<T>();
        }
        public static DelegateCommandBuilder<object> FromDelegates()
        {
            return FromDelegates<object>();
        }

        public static CompositeCommand Composite(bool activeAware)
        {
            return new CompositeCommand(activeAware);
        }
    }
}